home *** CD-ROM | disk | FTP | other *** search
Wrap
package com.supercede.forms; import java.awt.Component; import java.awt.MenuComponent; import java.io.Serializable; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.TooManyListenersException; public class SuperCedeConnectionDescriptor implements Serializable { protected String sourceClassName; protected String targetClassName; protected String connectorName; protected boolean isSimpleInnerClass; protected boolean sourceIsForm; protected Object sourceInstance; protected String eventFiredName; protected String addListenerName; protected String eventListenerName; protected boolean targetIsForm; protected Object targetInstance; protected boolean fixedHandlerName; protected String eventHandlerName; private static final long serialVersionUID = 1013082004010516616L; private static final int _version = 1; private int version = 1; public static String makeEventHandlerName(SuperCedeConnectionDescriptor var0) throws IllegalArgumentException { return makeEventHandlerName(var0.sourceIsForm, var0.sourceInstance, var0.eventFiredName); } public static String makeEventHandlerName(boolean var0, Object var1, String var2) throws IllegalArgumentException { StringBuffer var3 = new StringBuffer(); if (var1 instanceof String) { var3.append((String)var1); var0 = true; } else if (var1 instanceof Component) { var3.append(((Component)var1).getName()); } else { if (!(var1 instanceof MenuComponent)) { throw new IllegalArgumentException("INTERNAL ERROR: Source of event must be a bean that is a [Menu]Component or the Form" + var1.getClass().getName()); } var3.append(((MenuComponent)var1).getName()); } if (var0) { var3.setCharAt(0, Character.toLowerCase(var3.charAt(0))); } int var4 = var3.length(); var3.append(var2); var3.setCharAt(var4, Character.toUpperCase(var3.charAt(var4))); return var3.toString(); } public static String makeEventHandlerName(String var0, Object var1, String var2) throws IllegalArgumentException { StringBuffer var3 = new StringBuffer(); if (var1 instanceof String) { String var4 = (String)var1; var3.append(var4); if (var4.equals(var0)) { var3.setCharAt(0, Character.toLowerCase(var3.charAt(0))); } } else if (var1 instanceof Component) { String var5 = ((Component)var1).getName(); var3.append(var5); if (var5.equals(var0)) { var3.setCharAt(0, Character.toLowerCase(var3.charAt(0))); } } else { if (!(var1 instanceof MenuComponent)) { throw new IllegalArgumentException("INTERNAL ERROR: Source of event must be a bean that is a [Menu]Component or the Form" + var1.getClass().getName()); } var3.append(((MenuComponent)var1).getName()); } int var6 = var3.length(); var3.append(var2); var3.setCharAt(var6, Character.toUpperCase(var3.charAt(var6))); return var3.toString(); } protected SuperCedeConnectionDescriptor() { } public SuperCedeConnectionDescriptor(String var1, String var2, String var3, Object var4, String var5, String var6, String var7, Object var8, String var9) { this.initialize(var1, var2, var3, var4, var5, var6, var7, var8, var9); } protected void initialize(String var1, String var2, String var3, Object var4, String var5, String var6, String var7, Object var8, String var9) { if (var3.startsWith(var1)) { this.connectorName = var3; } else { this.connectorName = var1 + Character.toUpperCase(var3.charAt(0)) + var3.substring(1); } this.sourceIsForm = var4 == null; this.targetIsForm = var8 == null; if (this.sourceIsForm) { this.sourceInstance = var1; this.sourceClassName = var2; } else { this.sourceInstance = var4; this.sourceClassName = var4.getClass().getName(); } if (this.targetIsForm) { this.targetInstance = var1; this.targetClassName = var1; } else { this.targetInstance = var8; this.targetClassName = var8.getClass().getName(); } this.eventListenerName = var7; this.addListenerName = var6; this.eventFiredName = var5; if (var9 == null) { this.fixedHandlerName = false; this.updateEventHandlerName(); } else { this.fixedHandlerName = true; this.eventHandlerName = var9; } } protected SuperCedeConnectionDescriptor(SuperCedeConnectionDescriptor var1) { this.sourceClassName = var1.sourceClassName; this.targetClassName = var1.targetClassName; this.connectorName = var1.connectorName; this.isSimpleInnerClass = var1.isSimpleInnerClass; this.sourceIsForm = var1.sourceIsForm; this.sourceInstance = var1.sourceInstance; this.eventFiredName = var1.eventFiredName; this.addListenerName = var1.addListenerName; this.eventListenerName = var1.eventListenerName; this.targetIsForm = var1.targetIsForm; this.targetInstance = var1.targetInstance; this.fixedHandlerName = var1.fixedHandlerName; this.eventHandlerName = var1.eventHandlerName; this.version = var1.version; } private void updateEventHandlerName() { if (!this.fixedHandlerName) { this.eventHandlerName = makeEventHandlerName(this); } } public void classNameChanged(String var1) { if (this.sourceIsForm) { this.sourceInstance = var1; } String var2 = this.targetClassName; this.targetClassName = var1; this.targetInstance = var1; int var3 = this.connectorName.indexOf(var2); if (var3 != -1) { if (var3 != 0) { StringBuffer var4 = new StringBuffer(this.connectorName.length() + var1.length() - var2.length()); var4.append(this.connectorName.substring(0, var3)); var4.append(var1); var4.append(this.connectorName.substring(var3 + var2.length())); this.connectorName = var4.toString(); } else { this.connectorName = var1 + this.connectorName.substring(var3 + var2.length()); } } this.updateEventHandlerName(); } public void baseClassNameChanged(String var1) { if (this.sourceIsForm) { this.sourceClassName = var1; } } public String beanNameChanged(Component var1) { if (this.sourceInstance != var1) { return null; } else if (this.fixedHandlerName) { return null; } else { String var2 = this.eventHandlerName; this.updateEventHandlerName(); return var2; } } public String getConnectorName() { return this.connectorName; } public void setConnectorName(String var1) { this.connectorName = var1; } public String getTargetClassName() { return this.targetClassName; } public String getSourceClassName() { return this.sourceClassName; } public String getEventHandlerName() { return this.eventHandlerName; } public void runTimeInit(Object var1) { if (!this.targetIsForm) { throw new IllegalStateException("The target of an event connection is not the form itself"); } else { if (this.targetIsForm) { this.targetInstance = var1; this.targetClassName = var1.getClass().getName(); } if (this.sourceIsForm) { this.sourceInstance = var1; this.sourceClassName = var1.getClass().getName(); } } } public Object getTargetInstance() { return this.targetInstance; } public Object getSourceInstance() { return this.sourceInstance; } public String getAddListenerName() { return this.addListenerName; } public String getEventListenerName() { return this.eventListenerName; } public Method getAddListenerMethod() throws SuperCedeInvalidStateException { Object var1 = null; try { var7 = new Class[]{Class.forName(this.eventListenerName)}; } catch (ClassNotFoundException var6) { throw new SuperCedeInvalidStateException(var6, "Can't find Event Source's (" + this.sourceClassName + ") Listener interface " + this.addListenerName); } Object var2 = null; try { Method var8 = this.sourceInstance.getClass().getMethod(this.addListenerName, var7); return var8; } catch (NoSuchMethodException var4) { throw new SuperCedeInvalidStateException(var4, "Can't find Event Source's (" + this.sourceClassName + ") addListener method " + this.addListenerName); } catch (SecurityException var5) { throw new SuperCedeInvalidStateException(var5, "Can't access Event Source's (" + this.sourceClassName + ") addListener method " + this.addListenerName); } } public void wireItUp(SuperCedeConnector var1) throws SuperCedeInvalidStateException { try { this.addAsListener(var1); } catch (Throwable var3) { if (var3 instanceof SuperCedeInvalidStateException) { throw (SuperCedeInvalidStateException)var3; } else { throw new SuperCedeInvalidStateException(var3, "Problem initializing (generated) connector class: " + this.connectorName); } } } void addAsListener(Object var1) throws SuperCedeInvalidStateException { Method var2 = this.getAddListenerMethod(); Object[] var3 = new Object[]{var1}; try { var2.invoke(this.sourceInstance, var3); } catch (InvocationTargetException var6) { Throwable var5 = var6.getTargetException(); if (var5 instanceof TooManyListenersException) { throw new SuperCedeInvalidStateException(var6, "Couldn't make an event connection between " + this.sourceClassName + " and " + this.connectorName); } else { throw new SuperCedeInvalidStateException(var6, "Unexpected exception thrown by " + this.addListenerName + " on Event source " + this.sourceClassName); } } catch (Throwable var7) { throw new SuperCedeInvalidStateException(var7, "Problem invoking " + this.addListenerName + " on Event source " + this.sourceClassName); } } public String getSourceInstanceName() { if (this.sourceIsForm) { return (String)this.sourceInstance; } else if (this.sourceInstance instanceof Component) { return ((Component)this.sourceInstance).getName(); } else { return this.sourceInstance instanceof MenuComponent ? ((MenuComponent)this.sourceInstance).getName() : this.sourceInstance.getClass().getName(); } } public String getTargetInstanceName() { if (this.targetIsForm) { return (String)this.targetInstance; } else if (this.targetInstance instanceof Component) { return ((Component)this.targetInstance).getName(); } else { return this.targetInstance instanceof MenuComponent ? ((MenuComponent)this.targetInstance).getName() : this.targetInstance.getClass().getName(); } } public String toString() { String var1 = this.getSourceInstanceName(); String var2 = this.getTargetInstanceName(); StringBuffer var3 = new StringBuffer(this.connectorName.length() + ": from ".length() + var1.length() + this.eventFiredName.length() + " to ".length() + var2.length() + this.eventHandlerName.length() + 2 + 1); var3.append(this.connectorName); var3.append(": from "); var3.append(var1); var3.append('.'); var3.append(this.eventFiredName); var3.append(" to "); var3.append(var2); var3.append('.'); var3.append(this.eventHandlerName); return var3.toString(); } public String toInvocation() { String var3 = null; String var4 = null; String var1; String var2; if (this.sourceIsForm) { var1 = (String)this.sourceInstance; var2 = this.sourceClassName; var3 = "null"; if (this.targetIsForm) { var4 = "null"; } } else if (this.targetIsForm) { var1 = (String)this.targetInstance; var2 = ""; var4 = "null"; } else { int var5 = this.connectorName.indexOf("EventConnector"); var1 = this.connectorName.substring(0, var5); var2 = ""; } if (var3 == null) { var3 = this.getSourceInstanceName(); } if (var4 == null) { var4 = this.getTargetInstanceName(); } String var7 = "SuperCedeConnectionDescriptor"; StringBuffer var6 = new StringBuffer(25 + var7.length() + var1.length() + var2.length() + this.connectorName.length() + var3.length() + this.eventFiredName.length() + this.addListenerName.length() + this.eventListenerName.length() + var4.length() + this.eventHandlerName.length() + 10 + 1 + 8); var6.append("new "); var6.append(var7); var6.append("(\""); var6.append(var1); var6.append("\", \""); var6.append(var2); var6.append("\", \""); var6.append(this.connectorName); var6.append("\", "); var6.append(var3); var6.append(", \""); var6.append(this.eventFiredName); var6.append("\", \""); var6.append(this.addListenerName); var6.append("\", \""); var6.append(this.eventListenerName); var6.append("\", "); var6.append(var4); var6.append(", \""); var6.append(this.eventHandlerName); var6.append("\");"); return var6.toString(); } }